#include "Application.h"
#include "TestManager.h"
#include "tests/OneParticleTest.h"
#include "tests/MoreParticlesTest.h"
#include "tests/ExplosionTest.h"
#include "tests/SpringTest.h"
#include "tests/collisionTest.h"
#include "tests/crazycollisionTest.h"
#include "tests/RestingTest.h"
#include "tests/RBTest.h"

int main()
{
	Application app;				// this is the window and "system-side" main loop
	TestManager testManager;		// this is the window content, i.e. our game (containing the game-side main loop)

	// tells the test manager where to draw
	testManager.SetRenderer(&app);
	
	// add tests
	testManager.AddTest( new OneParticleTest(&testManager) );
	testManager.AddTest( new MoreParticlesTest(&testManager) );
	testManager.AddTest( new ExplosionTest(&testManager) );
	testManager.AddTest( new SpringTest(&testManager) );
	testManager.AddTest( new CollisionTest(&testManager) );
	testManager.AddTest( new CrazyCollisionTest(&testManager) );
	testManager.AddTest( new RestingTest(&testManager) );
	testManager.AddTest( new RBTest(&testManager) );

	// tells the window that someone wants to be notified of window events
	app.SetObserver(&testManager);

	app.Run();

	return 0;
}
